package com.todo.strategy.card.iface.backend;


import com.todo.common.common.entity.response.BizPageResponse;
import com.todo.common.common.entity.response.BizResponse;
import com.todo.strategy.card.iface.backend.request.*;
import com.todo.strategy.card.iface.backend.response.BaseCardStrategyResp;
import com.todo.strategy.card.iface.backend.response.CardStrategyRelationResp;
import com.todo.strategy.card.iface.backend.response.QueryCardStrategyByConditionResp;

import java.util.List;

/**
 * @author zhangwenxiang
 * @date 2024/3/5 19:19
 * @description
 */
public interface CardStrategyBackendIface {

    /**
     * 新增卡包策略信息
     *
     * @param insertTravelCardReq
     * @return
     */
    BizResponse<Boolean> insertCardStrategy(InsertCardStrategyReq insertTravelCardReq);

    /**
     * 根据主键id更新卡包策略
     *
     * @param updateCardStrategyReq
     * @return
     */
    BizResponse<Boolean> updateCardStrategyById(UpdateCardStrategyReq updateCardStrategyReq);

    /**
     * 启禁用卡包信息
     *
     * @param enableCardStrategyReq
     * @return
     */
    BizResponse<Boolean> enableCardStrategy(EnableCardStrategyReq enableCardStrategyReq);

    /**
     * 根据主键id查询卡包信息
     *
     * @param queryCardStrategyByIdReq
     * @return
     */

    BizResponse<BaseCardStrategyResp> queryCardStrategyById(QueryCardStrategyByIdReq queryCardStrategyByIdReq);

    /**
     * 多条件查询卡包列表
     *
     * @param queryCardStrategyByConditionReq
     * @return
     */
    BizPageResponse<QueryCardStrategyByConditionResp> queryCardStrategyByCondition(QueryCardStrategyByConditionReq queryCardStrategyByConditionReq);

    /**
     * 新增旅游卡攻略关联信息
     *
     * @param req
     * @return
     */
    BizResponse<Boolean> insertCardStrategyRelation(InsertCardStrategyRelationReq req);

    /**
     * 更新旅游卡攻略关联信息
     *
     * @param req
     * @return
     */
    BizResponse<Boolean> updateCardStrategyRelation(UpdateCardStrategyRelationReq req);

    /**
     * 查询旅游卡攻略关联列表
     *
     * @param req
     * @return
     */
    BizResponse<List<CardStrategyRelationResp>> queryCardStrategyByStrategyId(QueryCardStrategyRelationListReq req);
}
